package com.shengqin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shengqin.common.pojo.CommonPage;
import com.shengqin.entity.Student;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shengqin.pojo.student.StudentImportParam;

import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 学生信息 服务类
 * </p>
 *
 * @author Rui.Zhou
 * @since 2023-12-05
 */
public interface IStudentService extends IService<Student> {

    List<Student> listByClassesId(Integer classesId);

    List<Student> listByClassesIds(Collection<Integer> classesIds);

    Page<Student> getPage(CommonPage<Student> pageParam);

    Student getByStudyCode(String studyCode);

    boolean importBatch(List<StudentImportParam> cachedDataList);

    List<Student> queryByStudyCodes(Collection<String> studyCodes);

    List<Student> listBySchoolId(Integer schoolId);

    List<Student> listBySchoolIdAndExcludeStudyCodes(Integer schoolId, Set<String> includeStudyCodes, Set<String> studyCodes);

    void removeBySchoolId(Integer schoolId);

    Student getByIdNumber(String idCardNo);

    Student getByIdNumberAndName(String idCard, String name);

    List<Student> listBySchoolIds(Set<Integer> schoolIds);
}
